package com.flute.haflute.tools;

/**
 * Property的工具类
 * 
 * @author Jazz
 */
public class PropertyUtils {
	/***
	 * @param key
	 *            属性 key.
	 * @return 返回该Key的值，当Property是Null或者空的时候返回Null
	 */
	public static String getPropertyOrNull(final String key) {
		String value = System.getProperty(key);
		return (value == null || value.length() <= 0) ? null : value;
	}

	/***
	 * @param key
	 *            属性 key.
	 * @return 如果能得到Property返回true，如果Null，空或者没有Property返回false.
	 */
	public static boolean getBooleanProperty(final String key) {
		return (getPropertyOrNull(key) == null) ? false : Boolean.valueOf(
				getPropertyOrNull(key)).booleanValue();
	}

	/**
	 * @param key
	 *            在系统Property中需要查找的Key
	 * @param fallback
	 *            如果没有值返回，返回该fallback值
	 * @return value 返回系统Property的值或者fallback值.
	 */
	public static int getIntProperty(final String key, final int fallback) {
		return getPropertyOrNull(key) == null ? fallback : Integer
				.parseInt(getPropertyOrNull(key));
	}
}
